#ifndef SHIP_INPUT_HPP
#define SHIP_INPUT_HPP

#include <OISKeyboard.h>

// This is the class that defines all the commands that can be given to a ship.
// The values here can be set by anything that wants to set it, meaning that 
// both the player and any AI use this to set what they want a ship to be doing.
// From there, the ship will read these input commands and do it's best to try
// and follow them.

enum Pitch
{
	PITCH_UP = 0,
	PITCH_DOWN,
	PITCH_NEUTRAL
};

enum Turn
{
	TURN_LEFT = 0,
	TURN_RIGHT,
	TURN_NEUTRAL
};

enum Roll
{
	ROLL_LEFT = 0,
	ROLL_RIGHT,
	ROLL_NEUTRAL
};

enum Throttle
{
	THROTTLE_INCREASE = 0,
	THROTTLE_DECREASE,
	THROTTLE_NEUTRAL
};

class ShipInput
{
	public: 
		
		// Constructor to initialise to all the correct values.
		ShipInput();

		void injectKeyPressed(const OIS::KeyEvent& keyEventRef);
		void injectKeyReleased(const OIS::KeyEvent& keyEventRef);

		int m_nPitchDirection;
		int m_nTurnDirection;
		int m_nRollDirection;
		int m_nThrottleDirection;

		float m_fThrottlePosition;
};

#endif